package eu.telecom_bretagne.RECRUT.service;

import java.util.List;
import java.util.Set;

import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;

import eu.telecom_bretagne.RECRUT.data.dao.DossierCandidatureDAO;
import eu.telecom_bretagne.RECRUT.data.dao.EmployeDAO;
import eu.telecom_bretagne.RECRUT.data.dao.OffreDAO;
import eu.telecom_bretagne.RECRUT.data.model.DossierCandidature;
import eu.telecom_bretagne.RECRUT.data.model.Employe;
import eu.telecom_bretagne.RECRUT.data.model.Offre;

/**
 * Session Bean implementation class ServiceOffre
 */
@Stateless
@LocalBean
public class ServiceOffre implements IServiceOffre {
	
	@EJB
	OffreDAO offreDAO;
	@EJB
	DossierCandidatureDAO dossierCandidatureDAO;
	@EJB
	EmployeDAO employeDAO;

	/**
	 * Default constructor.
	 */
	public ServiceOffre() {		}

	@Override
	public List<Offre> listeOffres() {
		
		return offreDAO.findAll();
	}
	
	@Override
	public Offre lireOffre (int id){
		
		return offreDAO.findById(id);
	}
	
	@Override
	public void supprimerOffre(int id) {

		Offre offre = offreDAO.findById(id);
		Employe employeOffre = offre.getEmploye();
		
		Set<DossierCandidature> dossierOffres = offre.getDossierCandidatures();	
		
		for (DossierCandidature dossierOffre : dossierOffres){
			dossierOffre.getOffre().removeDossierCandidature(dossierOffre);
			dossierCandidatureDAO.update(dossierOffre);
		}
		
		employeDAO.update(employeOffre);
		offreDAO.delete(offre);
	}

	@Override
	public List<Offre> listeOffreNotUse() {
		// TODO Auto-generated method stub
		return null;
	}
}
